Add a basic cairo node test
authorMatthias Clasen <mclasen@redhat.com>
Sun, 8 Oct 2017 15:51:00 +0000 (11:51 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 8 Oct 2017 16:21:45 +0000 (12:21 -0400)
testsuite/gsk/cairo.node [new file with mode: 0644]
testsuite/gsk/cairo.png [new file with mode: 0644]
testsuite/gsk/test-render-nodes.c

diff --git a/testsuite/gsk/cairo.node b/testsuite/gsk/cairo.node
new file mode 100644 (file)
index 0000000..fbddbf3
Binary files /dev/null and b/testsuite/gsk/cairo.node differ
diff --git a/testsuite/gsk/cairo.png b/testsuite/gsk/cairo.png
new file mode 100644 (file)
index 0000000..65b25cb
Binary files /dev/null and b/testsuite/gsk/cairo.png differ
index d9d937ee96c972c3b44fb1a2c404a906757a5fde..67f7e30fbeb0712a75c1098ee35d46737cd77219 100644 (file)
@@ -126,11 +126,40 @@ colors (void)
   return container;
 }
 
+static GskRenderNode *
+cairo (void)
+{
+  GskRenderNode *node;
+  cairo_surface_t *surface;
+  cairo_t *cr;
+
+  surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 200, 600);
+  cr = cairo_create (surface);
+
+  cairo_set_source_rgb (cr, 1, 0, 0);
+  cairo_rectangle (cr, 0, 0, 200, 200);
+  cairo_fill (cr);
+  cairo_set_source_rgb (cr, 0, 1, 0);
+  cairo_rectangle (cr, 0, 200, 200, 200);
+  cairo_fill (cr);
+  cairo_set_source_rgb (cr, 0, 0, 1);
+  cairo_rectangle (cr, 0, 400, 200, 200);
+  cairo_fill (cr);
+
+  node = gsk_cairo_node_new_for_surface (&GRAPHENE_RECT_INIT (0, 0, 200, 600), surface);
+
+  cairo_destroy (cr);
+  cairo_surface_destroy (surface);
+
+  return node;
+}
+
 static const struct {
   const char *name;
   GskRenderNode * (* func) (void);
 } functions[] = {
   { "colors.node", colors },
+  { "cairo.node", cairo },
 };
 
 /*** test setup ***/